ada79b8c0a801d7ae95d4ee2471444543150be92,src/org/opendedup/sdfs/filestore/cloud/BatchJCloudChunkStore.java,BatchJCloudChunkStore,run,#,784

Before Change


									// hashString);
									metaData.put("deleted", "true");
									metaData.put("deletedobjects", Integer.toString(delobj));
									blobStore.copyBlob(this.name, this.getClaimName(k), this.name, this.getClaimName(k),
											CopyOptions.builder().contentMetadata(dmd.getContentMetadata())
													.userMetadata(metaData).build());
								}

							} else {
								// SDFSLogger.getLog().info("updating " +
								// hashString + " sz=" +objs);
								metaData.put("deletedobjects", Integer.toString(delobj));
								blobStore.copyBlob(this.name, this.getClaimName(k), this.name, this.getClaimName(k),
										CopyOptions.builder().contentMetadata(dmd.getContentMetadata())
												.userMetadata(metaData).build());
							}

After Change


						String hashString = EncyptUtils.encHashArchiveName(k.longValue(),
								Main.chunkStoreEncryptionEnabled);
						try {
							BlobMetadata dmd = blobStore.blobMetadata(this.name, this.getClaimName(k));
							Map<String, String> metaData = dmd.getUserMetadata();
							int objs = Integer.parseInt(metaData.get("objects"));
							// SDFSLogger.getLog().info("remove requests for " +
							// hashString + "=" + odel.get(k));
							int delobj = 0;
							if (metaData.containsKey("deletedobjects"))
								delobj = Integer.parseInt((String) metaData.get("deletedobjects"));
							// SDFSLogger.getLog().info("remove requests for " +
							// hashString + "=" + odel.get(k));
							delobj = delobj + odel.get(k);
							if (objs <= delobj) {
								int size = Integer.parseInt((String) metaData.get("size"));
								int compressedSize = Integer.parseInt((String) metaData.get("compressedsize"));
								if (HashBlobArchive.compressedLength.get() > 0) {

									HashBlobArchive.compressedLength.addAndGet(-1 * compressedSize);
								} else if (HashBlobArchive.compressedLength.get() < 0)
									HashBlobArchive.compressedLength.set(0);
								HashBlobArchive.currentLength.addAndGet(-1 * size);
								if (HashBlobArchive.currentLength.get() > 0) {
									HashBlobArchive.currentLength.addAndGet(-1 * size);
								} else if (HashBlobArchive.currentLength.get() < 0)
									HashBlobArchive.currentLength.set(0);
								HashBlobArchive.removeCache(k.longValue());
								if (this.deleteUnclaimed) {
									this.verifyDelete(k.longValue());
								} else {
									// SDFSLogger.getLog().info("deleting " +
									// hashString);
									metaData.put("deleted", "true");
									metaData.put("deletedobjects", Integer.toString(delobj));
									
									this.updateObject(this.getClaimName(k), dmd, metaData);
								}

							} else {
								// SDFSLogger.getLog().info("updating " +
								// hashString + " sz=" +objs);
								metaData.put("deletedobjects", Integer.toString(delobj));
								
								this.updateObject(this.getClaimName(k), dmd, metaData);
							}
						} catch (Exception e) {
							delLock.lock();